﻿using System.Collections.Generic;
using HappyBa.Core.Data;

namespace HappyBa.Core.Interfaces
{
    public interface IMetrics
    {
        ReceivedData Data { get; }
        UIProject[] Projects { get; }
        IList<UIEstimatableEntityBase> EstimatableEntities { get; }
        IList<UIAssignment> Assignables { get; }
        ISet<string> Roles { get; }
        ISet<string> Types { get; }
        ISet<string> States { get; }
        IList<User> Users { get; }
        IDictionary<int, string> UserRoleAssociations { get; }
        IDictionary<UIProject, UIBug[]> BugsByRelease { get; }
        IList<UIUserStory> UserStories { get; }
        IList<UITask> Tasks { get; }
        IList<UIBug> Bugs { get; }
        IList<UIImpediment> Impediments { get; }
        IDictionary<User, Time[]> UserTimes { get; }
        bool IsFinished(UIStatebleEntityBase entity);
        bool IsReadyForDevelopment(UIStatebleEntityBase entity);
        bool IsInProgress(UIStatebleEntityBase entity);
        bool IsResolved(UIStatebleEntityBase entity);
        bool IsFailed(UIStatebleEntityBase entity);
        bool IsDeveloper(User user);
        bool IsUserStory(UIStatebleEntityBase entity);
        bool IsBug(UIStatebleEntityBase entity);
        bool IsTask(UIStatebleEntityBase entity);
    }
}
